package com.xxmw.transaction.service.job;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xxmw.transaction.common.entity.P;
import com.xxmw.transaction.model.ScheduleJob;

/**
 * 定时任务业务接口
 *
 * @author xiangzuotao
 * @date 2018年7月25日
 */
public interface ScheduleJobService extends IService<ScheduleJob> {

    /**
     * 获取job列表
     *
     * @param pageNum  页码
     * @param pageSize 页量
     * @param beanName bean名称
     * @return
     */
    P<ScheduleJob> getJobList(Integer pageNum, Integer pageSize, Integer type, Integer bourse, String beanName);

    /**
     * 获取定时任务
     *
     * @param jobId
     * @return
     */
    ScheduleJob getScheduleJob(Long jobId);

    /**
     * 保存更新
     *
     * @param scheduleJob
     */
    void addOrUpdate(ScheduleJob scheduleJob);

    /**
     * 批量删除
     *
     * @param jobIds
     */
    void deleteBatch(Long[] jobIds);

    /**
     * 批量更新
     *
     * @param jobIds
     * @param status
     */
    void upateBatch(Long[] jobIds, int status);

    /**
     * 立即执行
     *
     * @param jobIds
     */
    void run(Long[] jobIds);

    /**
     * 暂停执行
     *
     * @param jobIds
     */
    void pause(Long[] jobIds);

    /**
     * 恢复执行
     *
     * @param jobIds
     */
    void resume(Long[] jobIds);

    /**
     * 根据交易所和交易对获取任务
     * @param bourse
     * @param symbol
     * @return
     */
    ScheduleJob getByBourseAndSymbol (Integer bourse, String symbol);

}
